Skip to content

docs(persona): the TUI says "attribute" too, not "fact" - #285

Merged
stormer78 merged 1 commit into
mainfrom
docs/persona-attribute-vocabulary
Sep 8, 2026
Merged

docs(persona): the TUI says "attribute" too, not "fact"#285
stormer78 merged 1 commit into
mainfrom
docs/persona-attribute-vocabulary

Conversation

@stormer78

Copy link
Copy Markdown
Contributor

The identity pane was the third surface design-docs/persona-vocabulary.md governs, and the one left behind when the console (OpenVTC/vta-browser-plugin#191) and pnm (OpenVTC/verifiable-trust-infrastructure#1319) were brought over. A tab was literally named Your facts and its form said Add a fact.

The word was wrong in two independent ways.

It asserts what the model cannot promise. Everything in the pool is self-asserted until a credential backs it, and a face exists precisely so a person may show an old value, a pinned version, a per-context override, or something untrue. The pane said fact directly above the provenance line that said you said so.

And it was already taken. Facts is the VTC ceremony engine's term for a verified policy input (vtc-service/src/ceremony/facts.rs, every .rego) — very nearly the opposite meaning, in the same product.

What changed on screen

Before After
tab Your facts tab Your attributes
Add a fact / Edit a fact Add an attribute / Edit an attribute
wears: work (3 facts) wears: work (3 attributes)
no facts recorded no attributes recorded
(unnamed fact) (unnamed attribute)
Saved the fact / Forgot the fact Saved the attribute / Forgot the attribute
Could not read your facts Could not read your attributes
A fact about you, held once. Something you say about yourself, held once.

the_pane_speaks_the_agreed_vocabulary now bans fact and permits attribute, with the reasoning inline so it is not "fixed" back — that guard is the only mechanical enforcement this vocabulary has, and it caught the change the moment I made it.

Untouched: openvtc-core::persona types, the wire format and task URIs (they always said attribute), and ordinary English — after the fact, in fact.

The companion design-docs/persona-vocabulary.md now records all four surfaces and which one is still unaudited (the mobile agent, which inherits the VTA's card text but has not been read line by line).

Verification

446 + 520 + 28 tests pass; cargo clippy --all-targets and cargo fmt --check clean.

The identity pane was the third surface `design-docs/persona-vocabulary.md`
governs and the one left behind when the console and `pnm` were brought over.
A tab was literally named *Your facts* and its form said *Add a fact*.

The word was wrong in two independent ways. It asserts what the model cannot
promise: everything in the pool is self-asserted until a credential backs it,
and a face exists so a person may show an old value, a pinned version, a
per-context override, or something untrue — the pane said *fact* directly above
the provenance line that said *you said so*. And it was already taken: `Facts`
is the VTC ceremony engine's term for a *verified* policy input.

- tab `Your facts` → `Your attributes`; `Add a fact` → `Add an attribute`
- `wears: work (3 facts)` → `(3 attributes)` in `BindingSummary::describe`
- `no facts recorded`, `(unnamed fact)`, `Saved the fact`, `Forgot the fact`,
  `Could not read your facts` and the pane's guidance copy follow
- the definition phrase is now the table's: *something you say about yourself,
  held once*
- `the_pane_speaks_the_agreed_vocabulary` bans `fact` and permits `attribute`,
  with the reasoning inline so it is not "fixed" back

Nothing in `openvtc-core::persona`'s types, the wire format or the task URIs
moves — they always said `attribute`. Ordinary English (`after the fact`, `in
fact`) is left alone.

446 + 520 + 28 tests pass; clippy and fmt clean.

Signed-off-by: Glenn Gore <glenn.g@affinidi.com>
@stormer78
stormer78 requested a review from a team as a code owner September 8, 2026 10:42
@stormer78
stormer78 merged commit c406171 into main Sep 8, 2026
14 checks passed
@stormer78
stormer78 deleted the docs/persona-attribute-vocabulary branch September 8, 2026 10:51
@affinidi-appsecurity-bot

Copy link
Copy Markdown

🛡️ AI Agentic Security Code Review

🔎 A manual security review is recommended before merging. Please contact the Security team for specifics and remediation guidance.

ℹ️ Detailed findings are not published on public repositories; the Security team holds the complete report.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants